package com.example.weatherreport.city_manager;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.ListView;

import androidx.appcompat.app.AppCompatActivity;


import com.example.weatherreport.R;
import com.example.weatherreport.db.DBManager;

import java.util.ArrayList;
import java.util.List;

public class DeleteCityActivity extends AppCompatActivity implements View.OnClickListener{

    ImageView errorIv,rightIv;
    ListView deleteLv;
    List<String> mDatas;   //listview的数据源

    List<String> deleteCitys;  //表示存储了删除的城市信息，目的是为了一会做统一的删除
    private DeleteCityAdapter adapter;

    @Override
    public void onClick(View v) {   //按钮监听事件
        switch (v.getId()) {
            case R.id.delete_iv_error:
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("提示信息").setMessage("您确定要舍弃更改么？") //设置对话框的标题和消息
                        .setPositiveButton("舍弃更改", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                finish();   //关闭当前的activity
                            }
                        });
                builder.setNegativeButton("取消",null);
                builder.create().show();
                break;
            case R.id.delete_iv_right:
                for (int i = 0; i < deleteCitys.size(); i++) {  //遍历已删除的城市列表
                    String city = deleteCitys.get(i);
                    // 调用删除城市的函数，删除数据库中对应的城市信息，并返回删除的结果，这里i1代表删除的结果
                    int i1 = DBManager.deleteInfoByCity(city);
                }
                // 删除成功返回上一级页面
                finish();
                break;
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_delete_city);

        // 初始化控件
        errorIv = findViewById(R.id.delete_iv_error);
        rightIv = findViewById(R.id.delete_iv_right);
        deleteLv = findViewById(R.id.delete_lv);
        mDatas = DBManager.queryAllCityName();  // 从数据库中查询所有的城市名称并赋值给mDatas列表
        deleteCitys = new ArrayList<>();

        // 为按钮设置点击监听事件
        errorIv.setOnClickListener(this);
        rightIv.setOnClickListener(this);

        // 适配器的设置
        adapter = new DeleteCityAdapter(this, mDatas, deleteCitys);
        // 将适配器设置给ListView，让ListView展示数据源中的数据和已删除的城市列表中的数据
        deleteLv.setAdapter(adapter);
    }

}
